import request from '@/utils/request'

/**
 * 用户相关接口
 */

/**
 * 用户登录
 * @param data 登录信息
 */
export function login(data) {
  return request({
    url: '/user/login',
    method: 'post',
    data
  })
}

/**
 * 获取用户信息
 * @param token 用户令牌
 */
export function getInfo(token) {
  return request({
    url: '/user/info',
    method: 'post',
    data: { token }
  })
}

/**
 * 退出登录
 */
export function logout() {
  return request({
    url: '/user/logout',
    method: 'post'
  })
}

/**
 * 获取用户列表
 * @param page 页码
 * @param size 每页条数
 * @param search 搜索条件
 */
export function getUserList(page, size, search) {
  return request({
    url: '/user/getList',
    method: 'post',
    data: { page, size, search }
  })
}

/**
 * 获取用户表单
 * @param uid 用户ID
 */
export function getUserForm(uid = 0) {
  return request({
    url: '/user/getUserForm',
    method: 'post',
    data: { uid }
  })
}

/**
 * 获取用户钱包表单
 * @param uid 用户ID
 */
export function getUserWalletForm(uid = 0) {
  return request({
    url: '/user/getUserWalletForm',
    method: 'post',
    data: { uid }
  })
}

/**
 * 删除用户
 * @param uid 用户ID
 */
export function deleteUser(uid) {
  return request({
    url: '/user/delete',
    method: 'post',
    data: { uid }
  })
}

/**
 * 管理组相关接口
 */

/**
 * 获取管理组列表
 */
export function getUserGroupList() {
  return request({
    url: '/user/UserGroup',
    method: 'get',
    params: {}
  })
}

/**
 * 获取单个管理组
 * @param id 管理组ID
 */
export function getUserGroup(id) {
  return request({
    url: '/user/UserGroup/getForm',
    method: 'post',
    data: { id }
  })
}

/**
 * 设置管理组
 * @param formData 表单数据
 */
export function setUserGroup(formData) {
  const id = parseInt(formData.id)
  if (id === 0) {
    // 新增
    return request({
      url: '/user/UserGroup/save',
      method: 'post',
      data: { formData }
    })
  } else {
    // 修改
    return request({
      url: '/user/UserGroup/update',
      method: 'post',
      data: { formData, id: formData.id }
    })
  }
}

/**
 * 删除管理组
 * @param id 管理组ID
 */
export function deleteUserGroup(id) {
  return request({
    url: '/user/UserGroup/delete',
    data: { id },
    method: 'post'
  })
}

/**
 * 子账号权限相关接口
 */

/**
 * 获取子账号列表
 * @param page 页码
 * @param size 每页条数
 * @param search 搜索条件
 * @param plaid 平台ID
 */
export function getUserPermissionList(page, size, search, plaid) {
  return request({
    url: '/user/UserPermission/getList',
    method: 'get',
    params: { page, size, search, plaid }
  })
}

/**
 * 获取添加表单
 * @param plaid 平台ID
 */
export function getAddFrom(plaid) {
  return request({
    url: '/user/UserPermission/getAddFrom',
    method: 'post',
    data: { plaid }
  })
}

/**
 * 获取权限表单
 * @param id 权限ID
 * @param plaid 平台ID
 */
export function getPermissionForm(id, plaid) {
  return request({
    url: '/user/UserPermission/getPermissionForm',
    method: 'post',
    data: { id, plaid }
  })
}

/**
 * 删除权限
 * @param id 权限ID
 */
export function deletePermission(id) {
  return request({
    url: '/user/UserPermission/deletePermission',
    method: 'post',
    data: { id }
  })
}

/**
 * 获取平台权限
 * @param plaid 平台ID
 */
export function getPlatformPermission(plaid) {
  return request({
    url: '/user/UserPermission/getPlatformPermission',
    method: 'post',
    data: { plaid }
  })
}
